home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / IDL / ODMemory.idl < prev    next >
Encoding:
Text File  |  1994-04-19  |  4.5 KB  |  198 lines  |  [TEXT/MPS ]

  1. //# Copyright:    © 1993-94 by Apple Computer, Inc., all rights reserved.
  2. /*
  3.     File:        ODMemorH.idl
  4.  
  5.     Contains:    SOM class definition for ODMemoryHeap
  6.  
  7.     Written by:    Michael Burbidge 
  8.  
  9.     Copyright:    © 1993 by Apple Computer, Inc., all rights reserved.
  10.  
  11. */
  12.  
  13. #include <somobj.idl>
  14. #include <somcls.idl>
  15.  
  16. //========================================================================================
  17. // Forward declarations
  18. //========================================================================================
  19.  
  20. interface ODMemoryHeap;
  21.  
  22.  
  23. //========================================================================================
  24. // Type definitions
  25. //========================================================================================
  26.  
  27.  
  28. //========================================================================================
  29. // CLASS M_ODMemoryHeap
  30. //========================================================================================
  31.  
  32. interface M_ODMemoryHeap : SOMClass
  33. {
  34.     ODMemoryHeap ODMemoryHeapCreate (in unsigned long initialSize,
  35.                                      in unsigned long incrementSize);
  36.  
  37. #ifdef __SOMIDL__
  38.     implementation
  39.     {
  40.         releaseorder:
  41.             ODMemoryHeapCreate;
  42.     };
  43. #endif
  44. };
  45.  
  46.  
  47. //========================================================================================
  48. // CLASS ODMemoryHeap
  49. //========================================================================================
  50.  
  51. interface ODMemoryHeap : SOMObject
  52. {
  53.     // ----- Type definitions
  54.     
  55.     typedef unsigned long ODBlockSize;
  56.  
  57.     // ----- Method declarations
  58.     
  59.     void* Allocate(in ODBlockSize size);
  60.     ODBlockSize BlockSize(in void* block);
  61.     unsigned long BytesAllocated();
  62.     unsigned long BytesFree();
  63.     void Free(in void* ptr);
  64.     boolean GetZapOnAllocate();
  65.     boolean GetZapOnFree();
  66.     unsigned long HeapSize();
  67.     unsigned long NumberAllocatedBlocks();
  68.     void Reset();
  69.     void* Reallocate(in void* block, in ODBlockSize newSize);
  70.     void SetZapOnAllocate(in boolean zapOnAllocate);
  71.     void SetZapOnFree(in boolean zapOnFree);
  72.  
  73.  
  74. #ifdef __SOMIDL__
  75.     implementation
  76.     {
  77.         metaclass = M_ODMemoryHeap;
  78.     
  79.         somInit: override;
  80.         somFree: override;
  81.  
  82.     
  83.         releaseorder:
  84.             Allocate,
  85.             BlockSize,
  86.             BytesAllocated,
  87.             BytesFree,
  88.             Free,
  89.             GetZapOnAllocate,
  90.             GetZapOnFree,
  91.             HeapSize,
  92.             NumberAllocatedBlocks,
  93.             Reset,
  94.             Reallocate,
  95.             SetZapOnAllocate,
  96.             SetZapOnFree,
  97.             SetObjectHeap;
  98.     };
  99. #endif
  100. /*
  101.     File:        ODMemorH.idl
  102.  
  103.     Contains:    SOM class definition for ODMemoryHeap
  104.  
  105.     Written by:    Michael Burbidge 
  106.  
  107.     Copyright:    © 1993 by Apple Computer, Inc., all rights reserved.
  108.  
  109. */
  110.  
  111. #include <somobj.idl>
  112. #include <somcls.idl>
  113.  
  114. //========================================================================================
  115. // Forward declarations
  116. //========================================================================================
  117.  
  118. interface ODMemoryHeap;
  119.  
  120.  
  121. //========================================================================================
  122. // Type definitions
  123. //========================================================================================
  124.  
  125.  
  126. //========================================================================================
  127. // CLASS M_ODMemoryHeap
  128. //========================================================================================
  129.  
  130. interface M_ODMemoryHeap : SOMClass
  131. {
  132.     ODMemoryHeap ODMemoryHeapCreate (in unsigned long initialSize,
  133.                                      in unsigned long incrementSize);
  134.  
  135. #ifdef __SOMIDL__
  136.     implementation
  137.     {
  138.         releaseorder:
  139.             ODMemoryHeapCreate;
  140.     };
  141. #endif
  142. };
  143.  
  144.  
  145. //========================================================================================
  146. // CLASS ODMemoryHeap
  147. //========================================================================================
  148.  
  149. interface ODMemoryHeap : SOMObject
  150. {
  151.     // ----- Type definitions
  152.     
  153.     typedef unsigned long ODBlockSize;
  154.  
  155.     // ----- Method declarations
  156.     
  157.     void* Allocate(in ODBlockSize size);
  158.     ODBlockSize BlockSize(in void* block);
  159.     unsigned long BytesAllocated();
  160.     unsigned long BytesFree();
  161.     void Free(in void* ptr);
  162.     boolean GetZapOnAllocate();
  163.     boolean GetZapOnFree();
  164.     unsigned long HeapSize();
  165.     unsigned long NumberAllocatedBlocks();
  166.     void Reset();
  167.     void* Reallocate(in void* block, in ODBlockSize newSize);
  168.     void SetZapOnAllocate(in boolean zapOnAllocate);
  169.     void SetZapOnFree(in boolean zapOnFree);
  170.  
  171.  
  172. #ifdef __SOMIDL__
  173.     implementation
  174.     {
  175.         metaclass = M_ODMemoryHeap;
  176.     
  177.         somInit: override;
  178.         somFree: override;
  179.  
  180.     
  181.         releaseorder:
  182.             Allocate,
  183.             BlockSize,
  184.             BytesAllocated,
  185.             BytesFree,
  186.             Free,
  187.             GetZapOnAllocate,
  188.             GetZapOnFree,
  189.             HeapSize,
  190.             NumberAllocatedBlocks,
  191.             Reset,
  192.             Reallocate,
  193.             SetZapOnAllocate,
  194.             SetZapOnFree,
  195.             SetObjectHeap;
  196.     };
  197. #endif
  198.